package com.zjl.redis.第02章_十大数据类型;

/**
 * redis哈希表(Hash)
 * Redis hash是一个string类型的
 *      field (字段)和value (值)的映射表，hash 特别适合用于存储对象。
 * Redis中每个hash可以存储2^32- 1键值对(40多亿)
 *
 */
public class B3_Hash {
    /**  hash//是一个键值对集合   是一个string的映射表类似于Map<String,String>
     *      hset key field1 value1 field2 value2//给key  加field1-value1（键值对）
     *      //hmset和hset一样
     *      hget key field //获取key建的  field 的对应的值
     *      hmget key field1 field2 ...//获取key建的  field1 和field2的值
     *      @see com.zjl.redis.第12章_大key引出的问题.C_模糊查询的命令 模糊查询指定 key的  field1
     *      hexists key field//查看key  是否有  field的键
     *      hkeys key//列出key的所有的键field
     *      hvals key//列出key的所有的值value
     *      hgetall key//返回key的所有键值对 //键1\n 值1\n  键2\n 值2\n
     *      hincrby key field increment//给key  的键值对 field对应的值+increment//increment负数就为减
     *      hincrbyfloat key field increment//给key  的键值对 field对应的值+increment//increment负数就为减 可为小数
     *      hsetnx key field value//当field不存在时  才添加
     *      hlen key//获取key的数量
     *      hdel key field [field...]//删除指定 key的指定 field
     *
     *
     * 结构
     *      Hash类型对应的数据结构是两种: ziplist (压缩列表)，hashtable (哈希表)。
     *      当 field-value长度较短且个数较少时，使用ziplist,否则使用 hashtable.
     *
     * reids6
     * @see com.zjl.redis.第18章_五大数据类型和源码解析.B3_压缩列表ziplist
     * reids7
     * @see com.zjl.redis.第18章_五大数据类型和源码解析.B8_紧凑列表listpack
     *
     * 数据过多时：
     * @see com.zjl.redis.第18章_五大数据类型和源码解析.B4_哈希表hashtable
     */
}
